Entities, such as software developers and/or vendors, provide software and services. Example software can include enterprise software. In some examples, enterprise software can include application software (an application) that interacts with one or more databases. For example, an application can be hosted on one or more application servers, and a user can interact with the application using a client device. In some examples, user interaction can result in data being read from, written to, and/or modified within one or more databases.
During a lifecycle of the application and/or database, one or more maintenance operations may be required. Example maintenance operations include upgrading, configuring, patching, and testing. In an upgrade procedure, for example, an application can be upgraded (e.g., from a first version to a second version), and data can be migrated between databases (e.g., from a first database that operated with the first version of the application to a second database that is to operate with the second version). Traditionally, updating Software and migrating databases usually are executed as separate steps, leading to multiple downtimes (e.g., periods during which the application and/or databases are unavailable for production use).
Products have been developed, which combine the upgrade and migration, such that a single downtime is required. Such products, however, have certain drawbacks. For example, the data is first migrated in the structure of the original system, but, due to the integrated software update, the data structure changes from a source structure to a target structure, which results in structural changes of the tables. The structural changes are applied after the data migration. Database indexes are also affected, because they have to be updated in the same way as the data is updated during such a conversion. Overall, and even though only a single downtime is required, this integrated conversion process results in a relatively extensive downtime, and can require significant technical resources (e.g., memory consumption due to data duplication).